package com.wyw.design.model.learning.behavioral.observerpattern;

import java.util.ArrayList;
import java.util.List;

/**
 * @Title   具体平台类（发布方）
 * @Description
 * @Author Mr Wu yewen.wu.china@gmail.com
 * @Date 2023/4/18 16:46
 * Update History:
 * Author        Time            Content
 */
public class Platform implements IPlatform  {
    // 存放读者（订阅者）
    private List<IReader> list = new ArrayList();
    @Override
    public void attach(IReader reader) {
        // 添加读者（订阅者）
        list.add(reader);
    }
    @Override
    public void detach(IReader reader) {
        // 删除读者（订阅者）
        list.remove(reader);
    }
    @Override
    public void notifyObservers(String bookName) {
        // 通知所有读者（订阅者）
        for (IReader reader : list) {
            reader.update(bookName);
        }
    }
    /**
     * 通知方法
     */
    public void change(String bookName) {
        this.notifyObservers(bookName);
    }
}
